package com.TestDemo.Test202203To04;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: zjz
 * @Date: 2022/03/22/14:15
 * @Description:
 * @Target:
 */
public class tuziTest{

/*
*
* 有一种兔子，从出生后第3个月起每个月都生一只兔子，小兔子长到第三个月后每个月又生一只兔子。
例子：假设一只兔子第3个月出生，那么它第5个月开始会每个月生一只兔子。
假如兔子都不死，问第n个月的兔子总数为多少？
*
*
* */

    public static void main(String[] args) throws IOException {
        // 我需要统计到一个兔子生出多少时间了，初始1只，按月数增长。一个是兔子列表，一个是日期
        // tuzi[]  date[]  同步增长的

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        Integer integer1 = Integer.valueOf(in.readLine());
        ArrayList<Integer> date = new ArrayList();
        // 总量:  1 1 2 3 5 8 13 21 34
        date.add(1);
        dealWith(integer1,date);
        System.out.println(date.size());
 /*       for (Integer integer : tuzi) {
            System.out.print(integer+" ");
        }

        System.out.println();
        for (Integer integer : date) {
            System.out.print(integer+" ");
        }
*/
    }
    static void dealWith(int month,ArrayList<Integer> date){

        int index =0;
        for (int i = 1; i < month; i++) {
            addOneDay(date);
            for (int j = 0; j < date.size(); j++) {
                if (check(date.get(j))){
                    date.add(1);
                }
            }

        }

    }


    static boolean check(int i){
        // 第一个月，第二个月不生
        if (i==1||i==2){
            return false;
        }else{
            return true;
        }
    }


    static void addOneDay(ArrayList<Integer> list){
        for (int i = 0; i < list.size(); i++) {
            list.set(i,list.get(i)+1);
        }
    }
}
